iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
AI & Data

時間管理大師-時間序列分析終極密技系列 第 17

[Day17]時無重至,華不再陽-Pandas學徒級,DataFrame操作寶典第1卷

  • 分享至 

  • xImage
  •  

Pandas資料表-DataFrame

相較於Series是一條資料,DataFrame可以說是一張表格,我們日常生活中所見的資料大多是以表格的方式呈現,因此DataFrame是整個Pandas的主力類別,也是讓Pandas被稱為python版Excel的原因,DataFrame大概像這個樣子

索引 品牌"型號 自動排檔 價格
0 Toyota 86 False 1300000
1 Subaru BRZ True 1320000
2 NISSAN GT-R True 6750000
4 MAZDA MX-5 False 1340000

DataFrame建立

DataFrame是以字典來建立的

# 載入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典來建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """

DataFrame基本操作

DataFrame的存取方式如下
這裡要提的是DataFrame是一張資料表,因此既然是資料表,就會有欄跟列的區別,欄就是直的,列是橫的,這點很重要,當然DataFrame不僅能操作一格資料,也能直接對一整欄或一整列做操作,一整欄或一整列就是指一條資料
因此從DataFrame取下一整欄或一整列的資料型態(類別)就是Series,所以Series的屬性和方法等等操作方式,也同樣適用於從DataFrame取下的一整欄或一整列的資料

# 載入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典來建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """
    #操作一格資料
    # brand欄位的第0筆資料
    print(data["brand"][0]) # Toyota 86
    # price欄位的第2筆資料
    print(data["price"][2]) # 6750000

    #操作一欄資料
    #type()可以查看某個物件的類別
    print(type(data["auto"])) # <class 'pandas.core.series.Series'>
    print(data["auto"])
    """
    0    False
    1     True
    2     True
    3    False
    Name: auto, dtype: bool
    """
    print(data["auto"].dtype) # bool

    #操作一列(一整筆)資料,透過DataFrame的loc屬性
    #type()可以查看某個物件的類別
    print(type(data.loc[3])) # <class 'pandas.core.series.Series'>
    print(data.loc[3])
    """
    brand    MAZDA MX-5
    auto          False
    price       1340000
    Name: 3, dtype: object
    """
    print(data.loc[3].size) # 3

    #切片
    #從第1列開始取,一共要取2列
    print(data.loc[1:2])
    """
             brand   auto    price
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    """

    print(data.loc[1:2]["brand"])
    """
    1   Subaru BRZ
    2  NISSAN GT-R
    """

常用屬性

# 載入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典來建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """

    # 大小
    print(data.size) # 12,一共12格資料
    # 形狀
    print(data.shape) #(4, 3),4列3欄
    # 索引
    print(data.index) #RangeIndex(start=0, stop=4, step=1)
    # 欄位
    print(data.columns) #Index(['brand', 'auto', 'price'], dtype='object')

上一篇
[Day16]一葉落知千年秋-重量級資料分析工具,Pandas
下一篇
[Day18]年難留,時易損-Pandas學長級,DataFrame操作寶典第2卷
系列文
時間管理大師-時間序列分析終極密技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言